package echecs;

import iechecs.Chaine;

import static echecs.Piece.*;

import iechecs.FonctionPosition;
import iechecs.IConstantes;
import iechecs.IEchecs.PositionType;

public class Position extends FonctionPosition implements IConstantes {

    private static final long serialVersionUID = -630794475596300896L;
    private FonctionPosition pos_courante;

    public Position(PositionType type) {
        pos_courante = new FonctionPosition();
        new Piece();
        switch (type) {
            case test:
                test();
            default:
        }
    }

    public void test() {

        placer(Dame_Blanche, d1);
        placer(Roi_Blanc, e1);
        placer(Cavalier_Noir, b8);
        placer(Roi_Noir, e8);
    }

    public void placer(Piece piece, Chaine Scase) {
        pos_courante.put(piece, Case.valueOf(Scase));
    }

    public APiece getPiece(Case c) {
        for (APiece p : pos_courante.keySet()) {
            if (pos_courante.get(p).equals(c)) {
                return p;
            }
        }

        return null;
    }

    public FonctionPosition getPos_courante() {
        return pos_courante;
    }

    public boolean isCaseVide(Case c) {
        return !pos_courante.containsValue(c);
    }
}
